Çàêðûòü îêíî
Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"
2.6. Còpóêòópa êoìaíäû è òèïû aäpecaöèè
2.6.1. Ïoíÿòèÿ
Koìaíäa - ýòo óêaçaíèe ïpoöeccopó âûïoëíèòü íeêoòopóþ oïepaöèþ íaä íaáopoì peãècòpoì èëè ÿ÷eeê ïaìÿòè. Coâoêóïíocòü âûïoëíÿeìûx ïpoöeccopoì oïepaöèé oápaçóeò cècòeìó êoìaíä.
Koìaíäa 6502 cocòoèò èç êoäa è íe áoëee 1 oïepaíäa è çaíèìaeò â ïaìÿòè oò 1 äo 3 áaéòoâ.
Koä êoìaíäû (1 áaéò) oäíoçía÷ío oïpeäeëÿeò âûïoëíÿeìóþ oïepaöèþ, ó÷acòâóþùèe â íeé peãècòpû, cïocoá çaäaíèÿ oïepaíäa (òèï aäpecaöèè) è, cëeäoâaòeëüío, ïoëíóþ äëèíó êoìaíäû.
Oïepaíä (2 èëè 2-3 áaéòû) çaäaeò êoìaíäe apãóìeíò (÷ècëo), c êoòopûì oía äoëæía paáoòaòü, ccûëêó ía apãóìeíò èëè ccûëêó ía ìecòo, êóäa íaäo ïoìecòèòü peçóëüòaò. Heäocòaþùèe apãóìeíòû xpaíÿòcÿ â ôèêcèpoâaííûx peãècòpax, è peçóëüòaò (êpoìe ïocëeäíeão cëó÷aÿ) òoæe ïoìeùaeòcÿ â peãècòp.
Áeçaäpecíûe êoìaíäû íe èìeþò oïepaíäa è âûïoëíÿþòcÿ íaä ôèêcèpoâaííûìè peãècòpaìè.
Aäpec ÿ÷eéêè apãóìeíòa èëè peçóëüòaòa â ïaìÿòè íaçûâaeòcÿ ècïoëíèòeëüíûì.
2.6.2. Hèæe ïpè oïècaíèè òèïoâ aäpecaöèè ècïoëüçóþòcÿ oáoçía÷eíèÿ:
M - ècïoëíèòeëüíûé aäpec, N - aäpec òeêóùeé êoìaíäû (áaéòa c êoäoì), (A) - aäpec ÿ÷eéêè íóëeâoé còpaíèöû (ìëaäøèé áaéò, ò.ê. còapøèé paâeí 0 è äoáaâëÿeòcÿ aâòoìaòè÷ecêè), çaïècaííûé â cëoâe A, (A,A+1) - aäpec, çaïècaííûé â cëoâax A è A+1.
B çaãoëoâêax ïoäïóíêòoâ óêaçaíû íaçâaíèe, oáoçía÷eíèe òèïa aäpecaöèè è äëèía êoìaíäû ïpè äaííoì òèïe. Bo âcex ïpèìepax apãóìeíòoì áóäeò ÷ècëo ¤78.
2.6.2.1. Heïocpeäcòâeííaÿ: # (2 áaéòa).
Apãóìeíò íaxoäèòcÿ íeïocpeäcòâeíío â ïoëe oïepaíäa:
M=N+1
N : êoä
N+1: 78
2.6.2.2. Hóëeâoé còpaíèöû: Z (2 áaéòa).
Apãóìeíò íaxoäèòcÿ â óêaçaííoé oïepaíäoì ÿ÷eéêe íóëeâoé còpaíèöû:
M=(N+1)
N : êoä 0026: 78
N+1: 26
2.6.2.3. Aácoëþòíaÿ: A (3 áaéòa).
Ècïoëíèòeëüíûé aäpec çaïècaí â ïoëe oïepaíäa, aäpecóeòcÿ âcÿ äocòóïíaÿ ïaìÿòü:
M=(N+1,N+2)
N : êoä 2A65: 78
N+1: 65
N+2: 2A
2.6.2.4. Aácoëþòíûe èíäeêcíûe: A,X (3 áaéòa),
A,Y (3 áaéòa).
Ècïoëíèòeëüíûé aäpec cäâèíóò oòíocèòeëüío óêaçaííoão â oïepaíäe ía coäepæèìoe peãècòpa X èëè Y (öeëoe áeç çíaêa):
M=(N+1,N+2)+X
N : êoä X=12 53C0: 78
N+1: AE
N+2: 53
M=(N+1,N+2)+Y
N : êoä Y=FF 0856: 78
N+1: 57
N+2: 07
2.6.2.5. Kopoòêaÿ èíäeêcíaÿ: Z,X (2 áaéòa).
To æe, ÷òo A,X , ío oïepaíä oäíoáaéòoâûé, è èíäeêcaöèÿ âeäeòcÿ ïo íóëeâoé còpaíèöe öèêëè÷ecêè!
M=(N+1)+X
N : êoä X=10 0008: 78
N+1: F8
2.6.2.6. Kocâeíío-èíäeêcíaÿ: (Z,X) (2 áaéòa).
Ècïoëíèòeëüíûé aäpec xpaíèòcÿ â äâóx ïocëeäoâaòeëüíûx áaéòax íóëeâoé còpaíèöû; aäpec ìëaäøeão èç íèx oïpeäeëÿeòcÿ òèïoì Z,X :
M=((N+1)+X,(N+1)+X+1)
N : êoä X=06 0040: DE 32DE: 78
N+1: 3A 0041: 32
2.6.2.7. Èíäeêcío-êocâeííaÿ: (Z),Y (2 áaéòa).
Ècïoëíèòeëüíûé aäpec oïpeäeëÿeòcÿ ïpèáaâëeíèeì coäepæèìoão Y ê aäpecó, xpaíÿùeìócÿ â äâóx ïocëeäoâaòeëüíûx áaéòax íóëeâoé còpaíèöû; aäpec ìëaäøeão èç íèx óêaçaí â oïepaíäe:
M=((N+1),(N+1)+1)+Y
N : êoä Y=04 0067: 43 BF47: 78
N+1: 67 0068: BF
2.6.2.8. Oòíocèòeëüíaÿ: R (2 áaéòa).
Ècïoëíèòeëüíûé aäpec oïpeäeëÿeòcÿ cìeùeíèeì oòíocèòeëüío cëeäóþùeé êoìaíäû ía óêaçaííoe â oïepaíäe ÷ècëo áaéòoâ (öeëoe co çíaêoì); ècïoëüçóeòcÿ òoëüêo â êoìaíäax ócëoâíoão ïepexoäa:
M=N+2+(N+1), ecëè 00 <= (N+1) <= 7F
M=N+2-¤100+(N+1), ecëè 80 <= (N+1) <= FF
2.6.2.9. Ècêëþ÷eíèÿ.
Kocâeííaÿ aäpecaöèÿ áeç ècïoëüçoâaíèÿ peãècòpoâ è ïo aáoëþòíoìó aäpecó ïpeäócìoòpeía äëÿ êoìaíäû ïepexoäa:
JMP (A)
ïpè÷eì, êoãäa aäpec ïpèxoäèòcÿ ía ãpaíèöó còpaíèö, òo còapøèé áaéò aäpeca áepeòcÿ èç íóëeâoão áaéòa òoé æe còpaíèöû (oøèáêa cxeìû ïpoöeccopa):
JMP (¤3FF) - aäpec âoçüìeòcÿ èç áaéòoâ ¤3FF è ¤300.
Kopoòêaÿ èíäeêcíaÿ aäpecaöèÿ â êoìaíäax LDX, STX opãaíèçóeòcÿ ÷epeç peãècòp Y:
LDX Z,Y
STX Z,Y
B äpóãèx cëó÷aÿx ïpè íeoáxoäèìocòè èíäeêcaöèè íóëeâoé còpaíèöû ÷epeç Y cëeäóeò âocïoëüçoâaòücÿ aácoëþòíoé èíäeêcíoé.
2.7. Oïècaíèe êoìaíä
Hèæe ïpè oïècaíèè ècïoëüçóeòcÿ ìíeìoíè÷ecêaÿ ôopìa çaïècè êoìaíä. Míeìoêoä oáoçía÷aeòcÿ òpeìÿ ëaòèícêèìè áóêâaìè. Áóêâoé M oáoçía÷aeòcÿ apãóìeíò, äpóãèìè áóêâaìè - coäepæèìoe peãècòpoâ. Óêaçaíû äoïócòèìûe òèïû aäpecaöèè, êoäû êoìaíä è èçìeíeíèe peãècòpoâ cocòoÿíèÿ.
2.7.1. Koìaíäû ïepecûëêè èç ïaìÿòè â peãècòpû:
M->A M->X M->Y Míeì: LDA LDX LDY # : A9 A2 A0 N V B D I Z C Z : A5 A6 A4 * - - - - * - A : AD AE AC Z,X : B5 ^B6 B4 A,X : BD - BC A,Y : B9 BE - (Z,X): A1 - - (Z),Y: B1 - - ^ LDX Z,Y
2.7.2. Koìaíäû ïepecûëêè èç peãècòpoâ â ïaìÿòü:
A->M X->M Y->M Míeì: STA STX STY Z : 85 86 84 N V B D I Z C A : 8D 8E 8C - - - - - - - Z,X : 95 ^96 94 A,X : 9D - - Y,X : 99 - - (Z,X): 81 - - (Z),Y: 91 - - ^ STX Z,Y
3. Meæpeãècòpoâûe ïepecûëêè:
A->X X->A A->Y Y->A X->S S->X TAX TXA TAY TYA TXS TSX N V B D I Z C AA 8A A8 98 9A BA * - - - - * -
4. Apèôìeòè÷ecêèe oïepaöèè:
A+M+C->A A-M-(1-C)->A Míeì: ADC SBC # : 69 E9 N V B D I Z C Z : 65 E5 * * - - - * * A : 6D ED Z,X : 75 F5 A,X : 7D FD A,Y : 79 F9 (Z,X): 61 E1 (Z),Y: 71 F1
5. Oïepaöèè cpaâíeíèÿ:
A-M X-M Y-M (íè oäèí peãècòp íe ìeíÿeòcÿ) Míeì: CMP CPX CPY # : C9 E0 C0 N V B D I Z C Z : C5 E4 C4 * - - - - * * A : CD EC CC Z,X : D5 - - A,X : DD - - A,Y : D9 - - (Z,X): C1 - - (Z),Y: D1 - -
6. Ëoãè÷ecêèe oïepaöèè:
A&M->A A!M->A A%M->A A&M (ïopaçpÿäío) Míeì: AND ORA EOR BIT # : 29 09 49 - N V B D I Z C Z : 25 05 45 24 * - - - - * - A : 2D 0D 4D 2C d7d6 - - - * - (BIT) Z,X : 35 15 55 - A,X : 3D 1D 5D - A,Y : 39 19 49 - & - ëoã. È (Z,X): 21 01 41 - ! - ëoã. ÈËÈ (Z),Y: 31 11 51 - % - ècêë. ÈËÈ
7. Oïepaöèè cäâèãa:
Apèôìeòè÷.cäâèã M Öèêëè÷.cäâèã M
âëeâo âïpaâo âëeâo âïpaâo
Míeì: ASL LSR ROL ROR aêê.: 0A 4A 2A 6A N V B D I Z C Z : 06 46 26 66 * - - - - *d7 (âëeâo) A : 0E 4E 2E 6E * - - - - *d0 (âïpaâo) Z,X : 16 56 36 76 A,X : 1E 5E 3E 7E
Aêêóìóëÿòopíaÿ aäpecaöèÿ - äeécòâèe íaä peãècòpoì A, oïepaíä â ýòoì cëó÷ae íe çaäaeòcÿ.
8. Óìeíüøeíèe è óâeëè÷eíèe ía 1:
M+1->M M-1->M X+1->X Y+1->Y X-1->X Y-1->Y
Míeì: INC DEC INX INY DEX DEY
E8 C8 CA 88
Z : E6 C6
A : EE CE N V B D I Z C
Z,X : F6 D6 * - - - - * -
A,X : FE DE
9. Ócòaíoâêa áèòoâ cëoâa cocòoÿíèÿ:
C V D I
â 0: CLC CLV CLD CLI äpóãèe áèòû
18 B8 D8 58 íe ìeíÿþòcÿ
â 1: SEC - SED SEI áeçaäpecíûe
38 F8 78
10. Ócëoâíûe ïepexoäû:
Äeécòâèe: PC+2+M->PC
Ócëoâèe: Z=1 Z=0 N=1 N=0 C=1 C=0 V=1 V=0
BEQ BNE BMI BPL BCS BCC BVS BVC
F0 D0 30 10 B0 90 70 50
oòíocèòeëüíaÿ aäpecaöèÿ, áèòû cocòoÿíèÿ íe ìeíÿþòcÿ
11. Ïepexoäû:
Äeécòâèÿ Míeì Tèï:êoä Áeçócëoâíûé : M->PC JMP A:4C (A):6C Ha ïoäïpoãpaììó : âcò PC+2,M->PC JSR A:20 Boçâpaò èç ï/ï : èçcò PC, PC+1->PC RTS 60 Boçâpaò èç ïpep-ÿ: èçcò P, èçcò PC RTI 40
12. Oïepaöèè co còeêoì:
âcò A âcò P èçcò A èçcò P
PHA PHP PLA PLP (PLA âoçäeécòâóeò
48 08 68 28 ía ïpèçíaêè Z,N)
13. Ïpo÷èe:
Heò oïepaöèè Ocòaíoâ(âcò P,âcò PC+2,(FFFA,FFFB)->PC)
NOP BRK
EA 00
2.8. Câoäêa êoìaíä ïpoöeccopa 6502.
B òaáëèöe ÷epeç òo÷êó óêaçaíû âpeìÿ ècïoëíeíèÿ êoìaíäû â òaêòax è ee øecòíaäöaòepè÷íûé êoä.
(Z,X) Z # A (Z),Y Z,X A,Y A,X
ORA ! 6.01 3.05 2.09 4.OD 5.11 4.15 4.19 4.1D
AND ! 6.21 3.25 2.29 4.2D 5.31 4.35 4.39 4.3D
EOR ! 6.41 3.45 2.49 4.4D 5.51 4.55 4.59 4.5D
ADC ! 6.61 3.65 2.69 4.6D 5.71 4.75 4.79 4.7D
STA 1 6.81 3.85 4.8D 5.91 4.95 5.99 5.9D
LDA ! 6.A1 3.A5 2.A9 4.AD 5.B1 4.B5 4.B9 4.BD
CMP ! 6.C1 3.C5 2.C9 4.CD 5.D1 4.D5 4.D9 4.DD
SBC ! 6.E1 3.E5 2.E9 4.ED 5.F1 4.F5 4.F9 4.FD
ASL ! 5.06 2.0A* 6.0E 6.16 7.1E
ROL ! 5.26 2.2A* 6.2E 6.36 7.3E
LSR ! 5.46 2.4A* 6.4E 6.76 7.5E
ROR ! 5.66 2.6A* 6.6E 6.96 7.7E
DEC ! 5.C6 6.CE 6.D6 7.DE
INC ! 5.E6 6.EE 6.F6 7.FE
BIT ! 3.24 4.8C
STX ! 3.84 4.8C 4.94
STY ! 3.86 4.8E 4.96*
LDY ! 3.A4 2.A0 4.AC 4.B4 4.BC
LDX ! 3.A6 2.A2 4.AE 4.B6* 4.BE
CPY ! 3.C4 2.C0 4.CC
CPX ! 3.E4 2.E0 4.EC
JMP ! 3.4C 5.6C*
JSR ! 6.20
Ècêëþ÷eíèÿ: ASL, LSR, ROL, ROR # -> aêêóìóëÿòopíaÿ
LDX, STX Z,X -> Z,Y
JMP (Z),Y -> (A)
BPL BMI BVC BVS BCC BCS BNE BEQ
2.10 2.30 2.50 2.70 2.90 2.B0 2.D0 2.F0
CLC SEC CLI SEI NOP CLV CLD SED
2.18 2.38 2.58 2.78 2.EA 2.B8 2.D8 2.F8
PHP PLP PHA PLA DEY INY DEX INX
3.08 4.28 3.48 4.68 2.88 2.C8 2.CA 2.E8
TXA TXS TAX TSX TYA TAY RTI RTI BRK
2.8A 2.9A 2.AA 2.BA 2.98 2.A8 6.40 6.60 7.00